//
//  AppDelegate.cpp
//  SimpleGame
//
//  Created by Scar1et on 2017/7/24.
//
//

// 头文件 -- 类库声明请放入头文件
#include "AppDelegate.h"

// 设置OpenGL属性
void AppDelegate::initGLContextAttrs() {
    // 红度，绿度，蓝度，透明度，深度，模板
    GLContextAttrs glContextAttrs = {8, 8, 8, 8, 24, 8};
    GLView::setGLContextAttrs(glContextAttrs);
}

// 当程序启动后调用
bool AppDelegate::applicationDidFinishLaunching() {
    // 应用Director单例
    auto director = Director::getInstance();
    // 获得OpenGL视图
    auto glvContent = director->getOpenGLView();
    if (!glvContent) {
        // OpenGL视图不存在
        glvContent = GLViewImpl::create("SimpleGame");
        director->setOpenGLView(glvContent);
    }
    // 设置分辨率 - xhdpi
    glvContent->setDesignResolutionSize(1024, 768, ResolutionPolicy::EXACT_FIT);
    // 设置是否显示fps
    director->setDisplayStats(true);
    
    // 设置资源文件位置
    FileUtils::getInstance()->addSearchPath("fonts");
    FileUtils::getInstance()->addSearchPath("images");
    
    // 启动应用，并运行主场景
    director->runWithScene(MainScene::createScene());
    
    // 是否启动成功
    return true;
}

// 当程序进入后台后调用
void AppDelegate::applicationDidEnterBackground() {
    // 结束动画
    Director::getInstance()->stopAnimation();
}

// 当程序恢复到前台后调用
void AppDelegate::applicationWillEnterForeground() {
    // 开始动画
    Director::getInstance()->startAnimation();
}
